package junit01;

import org.junit.*;

/**
 * Junit常用注解:@BeforeClass,@Before,@Test,@After,@AfterClass
 *
 * @BeforeClass:只能标记在静态方法上,在当前类的所有测试类方法执行之前(在@Before之前)仅执行一次,适合所有测试方法的共性操作或共享数据
 *          (例如:数据库连接适合放在@BeforeClass中)
 *
 * @Before:用于指定一个方法,在每一个单独的测试方法执行之前都会执行一次。通常用于每个测试方法需要的共同环境配置和数据例如:初始化相同的对象等。
 *
 * @After:注解用于指定一个方法，在每一个单独的测试方法执行之后都执行一次。通常用于清理@Before阶段或测试方法本身创建的资源(例如:关闭IO流)。
 *
 * @AfterClass:注解用于指定一个方法，在当前测试类的所有测试方法执行完毕之后仅执行一次。同样，这个方法必须是静态的。通常用于清理@BeforeClass阶段分配的资源。(例如:关闭数据库连接)
 *
 * 执行顺序:BeforeClass=>Before=>Test01=>After
 *                     Before=>Test02=>After=>AfterClass
 */
public class JunitDemo02 {
    @BeforeClass
    public static void BeforeClass(){
        System.out.println("BeforeClass");
    }

    @Before
    public void Before(){
        System.out.println("Before");
    }

    @Test
    public void Test01() {
        System.out.println("Test01");
    }

    @Test
    public void Test02() {
        System.out.println("Test02");
    }

    @After
    public void After(){
        System.out.println("After");
    }

    @AfterClass
    public static void AfterClass(){
        System.out.println("AfterClass");
    }
}
